package com.student.Activitys.adapter;

import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.text.style.ForegroundColorSpan;
import android.view.View;

import com.student.Activitys.R;
import com.student.Activitys.adapter.base.BaseRecyleViewAdapter;
import com.student.Activitys.adapter.viewholder.PartyMyApplyiewHolder;
import com.student.Activitys.utils.StringUtils;

import java.util.List;

/**
 * 项目名称：智慧校园学生端
 * 类描述：入党申请 查看 adapter
 * 创建人：张飞祥
 * 创建时间：2017/10/27 11:07
 * 修改人：张飞祥
 * 修改时间：2017/10/27 11:07
 * 修改备注：
 */
public class PartyMyApplyAdapter extends BaseRecyleViewAdapter {

    //上下文
    private Context context;
    //标题内容
    private List<String> titles;
    //申请状态
    private int status;
    //标题文字 上标 效果
    private String strTop;
    //状态绝对值
    private int absolute;
    //当前 列表 position +1
    private int number;

    public PartyMyApplyAdapter(Context context, List<String> titles,int status) {
        super(context, titles);
        this.context = context;
        this.titles = titles;
        this.status = status;
    }

    @Override
    protected int getLayoutItmeResId() {
        return R.layout.item_party_apply_see;
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        if (holder instanceof PartyMyApplyiewHolder) {
            PartyMyApplyiewHolder viewHolder = (PartyMyApplyiewHolder) holder;
            //将数据保存在itemView的Tag中，以便点击时进行获取
            viewHolder.itemView.setTag(position);
            absolute = Math.abs(status); //绝对值
            number = position + 1;       //当前列表下标 +1

            /**
             * 判断 不是列表第一个 显示 *
             */
            if (position == 0){
                viewHolder.tvItemPartyApplyName.setText(titles.get(position));
            }else{//设置标题
                strTop = titles.get(position)+"*";
                viewHolder.tvItemPartyApplyName.setText(StringUtils.setTopString(strTop,
                strTop.length()-1,strTop.length(),new ForegroundColorSpan(Color.RED)));
            }

            /**
             * number       position +1
             * absolute     绝对值
             */
            if (number <= absolute) {
                /**
                 * 同意 状态
                 * 1.判断 是否 是第一个，true：设置 绿色 结束线
                 * 2.判断 是否 为节点 中的某一个，true：设置 开始与结束  底线颜色 为 绿色
                 * 3.判断 是否 为节点 当中的 最后一个，true：设置 开始线颜色 为绿色，&& 如果 当前节点 不是最后一个 则设置 结束线颜色
                 */
                if (status > 0) {
                    //状态文字
                    viewHolder.tvItemPartyApplyState.setText("同意");
                    //中心图片
                    viewHolder.tmItemPartyApplyState.setMarkerDrawable(context.getResources().getDrawable(R.drawable.ic_state_yes));
                    if (number == 1 && absolute > 1) {
                        //结束线 颜色
                        viewHolder.tmItemPartyApplyState.setEndLine(context.getResources().getDrawable(R.color.color_side_line_yes));
                    } else if (absolute > number) {
                        //开始线 颜色
                        viewHolder.tmItemPartyApplyState.setBeginLine(context.getResources().getDrawable(R.color.color_side_line_yes));
                        //结束线 颜色
                        viewHolder.tmItemPartyApplyState.setEndLine(context.getResources().getDrawable(R.color.color_side_line_yes));
                    } else if (absolute == number && absolute>1 ) {
                        //开始线 颜色
                        viewHolder.tmItemPartyApplyState.setBeginLine(context.getResources().getDrawable(R.color.color_side_line_yes));
                        if (number != 6){
                            //结束线 颜色
                            viewHolder.tmItemPartyApplyState.setEndLine(context.getResources().getDrawable(R.color.color_side_line));
                        }
                    }
                }else{
                    /**
                     * 拒绝 状态
                     * 1.判断 是否 是第一个，true：设置 绿色 结束线 && 判断 当前节点 是否为 第二个，true：设置 灰色 结束线
                     * 2.判断当前 是否 为节点当中的某一个， true：设置 开始线与结束线为 绿色，&& 谁知 当前 节点 上一个节点结束线颜色
                     * 3.判断 当前 位置 是否 等于 节点， true：设置 拒绝 文字、图片、开始线的颜色
                     */

                    //状态文字
                    viewHolder.tvItemPartyApplyState.setText("同意");
                    //中心图片
                    viewHolder.tmItemPartyApplyState.setMarkerDrawable(context.getResources().getDrawable(R.drawable.ic_state_yes));
                    if (number == 1 && absolute > 1) {
                        //结束线 颜色
                        viewHolder.tmItemPartyApplyState.setEndLine(context.getResources().getDrawable(R.color.color_side_line_yes));
                        if ((absolute-1)==number){
                            //结束线 颜色
                            viewHolder.tmItemPartyApplyState.setEndLine(context.getResources().getDrawable(R.color.color_side_line));
                        }
                    } else if (absolute > number) {
                        //开始线 颜色
                        viewHolder.tmItemPartyApplyState.setBeginLine(context.getResources().getDrawable(R.color.color_side_line_yes));
                        //结束线 颜色
                        viewHolder.tmItemPartyApplyState.setEndLine(context.getResources().getDrawable(R.color.color_side_line_yes));
                        if ((absolute-1)==number){
                            //结束线 颜色
                            viewHolder.tmItemPartyApplyState.setEndLine(context.getResources().getDrawable(R.color.color_side_line));
                        }
                    } else if (absolute == number && absolute>1) {
                        //状态文字
                        viewHolder.tvItemPartyApplyState.setText("拒绝");
                        //中心图片
                        viewHolder.tmItemPartyApplyState.setMarkerDrawable(context.getResources().getDrawable(R.drawable.ic_state_no));
                        //开始线 颜色
                        viewHolder.tmItemPartyApplyState.setBeginLine(context.getResources().getDrawable(R.color.color_side_line));
                    }
                }
            }else{
                /**
                 * 待审核
                 * 判断 当前 节点位置+1 是否等于 列表中某一个位置，true：设置 待审核 文字、图片、开始线颜色
                 */
                if ((status+1)==number){
                    //状态文字
                    viewHolder.tvItemPartyApplyState.setText("待审核");
                    //中心图片
                    viewHolder.tmItemPartyApplyState.setMarkerDrawable(context.getResources().getDrawable(R.drawable.ic_state_wait));
                    //开始线 颜色
                    viewHolder.tmItemPartyApplyState.setBeginLine(context.getResources().getDrawable(R.color.color_side_line));
                }
            }
        }
    }
    @Override
    public RecyclerView.ViewHolder getViewHolder(View view) {
        return new PartyMyApplyiewHolder(view);
    }
}
